System Calls হলো এমন ফাংশন যা অপারেটিং সিস্টেমের কোর বা কার্নেলের সাথে যোগাযোগ করতে ব্যবহৃত হয়। Assembly Language প্রোগ্রামিংয়ে File I/O এবং Process Management পরিচালনার জন্য নির্দিষ্ট System Calls ব্যবহৃত হয়। System Calls ব্যবহার করে ফাইলের সাথে পড়া, লেখা, তৈরি করা এবং প্রক্রিয়া (process) তৈরি বা বন্ধ করার কাজ সম্পন্ন করা যায়।
File I/O এর জন্য System Calls
Assembly Language-এ ফাইলের সাথে ইনপুট এবং আউটপুট অপারেশন পরিচালনা করার জন্য নিচের System Calls গুলি ব্যবহৃত হয়:
- open:
- ব্যবহার: ফাইল খোলার জন্য ব্যবহৃত হয়।
- System Call Number (লিনাক্সের জন্য):
5 - Registers:
EAX= 5 (System Call Number)EBX= ফাইলের নামের পয়েন্টারECX= ফাইলের ওপেন মোড (যেমন read-only, write-only)EDX= পারমিশন (যদি নতুন ফাইল তৈরি করা হয়)
উদাহরণ:
MOV EAX, 5 ; open system call MOV EBX, file_name ; ফাইলের নামের পয়েন্টার MOV ECX, 0 ; read-only মোড INT 0x80 ; system call interrupt
- read:
- ব্যবহার: ফাইল থেকে পড়ার জন্য ব্যবহৃত হয়।
- System Call Number:
3 - Registers:
EAX= 3 (System Call Number)EBX= ফাইল ডেসক্রিপ্টরECX= ডেটা পড়ার জন্য বাফারের পয়েন্টারEDX= পড়ার জন্য বাইটের সংখ্যা
উদাহরণ:
MOV EAX, 3 ; read system call MOV EBX, file_desc ; ফাইল ডেসক্রিপ্টর MOV ECX, buffer ; ডেটা বাফারের পয়েন্টার MOV EDX, 100 ; পড়ার জন্য বাইটের সংখ্যা INT 0x80 ; system call interrupt
- write:
- ব্যবহার: ফাইলে বা স্ট্যান্ডার্ড আউটপুটে ডেটা লেখার জন্য ব্যবহৃত হয়।
- System Call Number:
4 - Registers:
EAX= 4 (System Call Number)EBX= ফাইল ডেসক্রিপ্টর (স্ট্যান্ডার্ড আউটপুটের জন্য1)ECX= লেখার জন্য বাফারের পয়েন্টারEDX= লেখার জন্য বাইটের সংখ্যা
উদাহরণ:
MOV EAX, 4 ; write system call MOV EBX, 1 ; স্ট্যান্ডার্ড আউটপুট MOV ECX, buffer ; লেখার জন্য ডেটা বাফার MOV EDX, 100 ; লেখার জন্য বাইটের সংখ্যা INT 0x80 ; system call interrupt
- close:
- ব্যবহার: খোলা ফাইল বন্ধ করার জন্য ব্যবহৃত হয়।
- System Call Number:
6 - Registers:
EAX= 6 (System Call Number)EBX= ফাইল ডেসক্রিপ্টর
উদাহরণ:
MOV EAX, 6 ; close system call MOV EBX, file_desc ; ফাইল ডেসক্রিপ্টর INT 0x80 ; system call interrupt
Process Management এর জন্য System Calls
Assembly Language-এ প্রসেস ম্যানেজমেন্টের জন্য ব্যবহৃত সাধারণ System Calls নিম্নরূপ:
- fork:
- ব্যবহার: একটি নতুন প্রসেস তৈরি করার জন্য ব্যবহৃত হয়।
- System Call Number:
2 - Registers:
EAX= 2 (System Call Number)
- ব্যাখ্যা: নতুন প্রসেসের ক্ষেত্রে
EAXরেজিস্টারে0রিটার্ন হয় এবং প্যারেন্ট প্রসেসের ক্ষেত্রে এটি নতুন প্রসেসের PID রিটার্ন করে।
- execve:
- ব্যবহার: বর্তমান প্রসেসের স্থান পরিবর্তন করে নতুন প্রোগ্রাম চালানোর জন্য ব্যবহৃত হয়।
- System Call Number:
11 - Registers:
EAX= 11 (System Call Number)EBX= প্রোগ্রামের নামের পয়েন্টারECX= আর্গুমেন্টের পয়েন্টারEDX= এনভায়রনমেন্টের পয়েন্টার
- exit:
- ব্যবহার: বর্তমান প্রসেস সমাপ্ত করার জন্য ব্যবহৃত হয়।
- System Call Number:
1 - Registers:
EAX= 1 (System Call Number)EBX= রিটার্ন কোড
উদাহরণ:
MOV EAX, 1 ; exit system call MOV EBX, 0 ; রিটার্ন কোড 0 (সফল সমাপ্তি) INT 0x80 ; system call interrupt
সারসংক্ষেপ
Assembly Language-এ File I/O এবং Process Management পরিচালনার জন্য System Calls ব্যবহৃত হয়। File I/O পরিচালনার জন্য open, read, write, এবং close System Calls ব্যবহার করা হয়। Process Management এর জন্য fork, execve, এবং exit System Calls ব্যবহৃত হয়। এগুলি CPU এবং কার্নেলের মধ্যে যোগাযোগ করে কার্যকরী কার্যপ্রণালী সম্পন্ন করে এবং প্রোগ্রামের কার্যকারিতা নিশ্চিত করে।
Read more